//package com.teaRestaurant.Alipay;
//
//import com.alibaba.fastjson2.JSONObject;
//import com.alipay.api.AlipayApiException;
//import com.alipay.api.AlipayClient;
//import com.alipay.api.DefaultAlipayClient;
//import com.alipay.api.request.AlipayTradePagePayRequest;
//import com.teaRestaurant.domain.entity.Order;
//import lombok.Data;
//import org.springframework.beans.factory.annotation.Value;
//import org.springframework.boot.context.properties.ConfigurationProperties;
//import org.springframework.stereotype.Component;
//import jakarta.servlet.http.HttpServletRequest;
//import jakarta.servlet.http.HttpServletResponse;
//
//import java.io.IOException;
//
//@ConfigurationProperties(prefix = "alipay")
//@Component
//@Data
//public class AlipayTemplate {
//    // 应用ID,您的APPID，收款账号既是您的APPID对应支付宝账号
//    @Value("{alipay.appId}")
//    public String appId;
//
//    // 应用私钥，就是工具生成的应用私钥
//    @Value("{alipay.merchantPrivateKey}")
//    public String merchantPrivateKey;
//    // 支付宝公钥,对应APPID下的支付宝公钥。
//    @Value("{alipay.alipayPublicKey}")
//    public String alipayPublicKey;
//
//    // 支付宝会悄悄的给我们发送一个请求，告诉我们支付成功的信息
//    @Value("{alipay.notifyUrl}")
//    public String notifyUrl;
//    //同步通知，支付成功，一般跳转到成功页
//    @Value("{alipay.returnUrl}")
//    public String returnUrl;
//
//    // 签名方式
//    @Value("{alipay.signType}")
//    private String signType;
//
//    // 字符编码格式
//    @Value("{alipay.charset}")
//    private String charset;
//
//    //订单超时时间
//    private String timeout = "1m";
//    // 支付宝网关；https://openapi-sandbox.dl.alipaydev.com/gateway.do
//    @Value("{alipay.gatewayUrl}")
//    public String gatewayUrl;
//
//    public void pay(HttpServletResponse httpResponse,Order order) throws
//            AlipayApiException, IOException {
//
//        System.out.println(appId);
//        System.out.println(merchantPrivateKey);
//        System.out.println(alipayPublicKey);
//        System.out.println(signType);
//        System.out.println(gatewayUrl);
//        System.out.println(charset);
//        //1、根据支付宝的配置生成一个支付客户端
//        AlipayClient alipayClient = new
//                DefaultAlipayClient(gatewayUrl, appId, merchantPrivateKey,
//                "json", charset, alipayPublicKey, signType);
//
//        //2、创建一个支付请求，并设置请求参数
//        AlipayTradePagePayRequest alipayRequest = new AlipayTradePagePayRequest();
//        alipayRequest.setReturnUrl(returnUrl);
//        alipayRequest.setNotifyUrl(notifyUrl);
//
////        String orderNo = order.getOrderNo();
////        Long interfaceInfoId = order.getInterfaceInfoId();
//        Double money = order.getAmount();
//        String paymentMethod = "支付宝支付";
//        String out_trade_no = "111111";
//
//        JSONObject bizContent = new JSONObject();
//        bizContent.put("out_trade_no", out_trade_no);
//        bizContent.put("total_amount", money);
//        bizContent.put("body", paymentMethod);
//        bizContent.put("timeout_express", timeout);
//        bizContent.put("product_code", "FAST_INSTANT_TRADE_PAY");
////        String bizContent = String.format("{\"out_trade_no\":\"%s\",\"total_amount\":\"%.2f\",\"body\":\"%s\",\"timeout_express\":\"%s\",\"product_code\":\"FAST_INSTANT_TRADE_PAY\"}",
////                out_trade_no, money, paymentMethod, timeout);
//        alipayRequest.setBizContent(bizContent.toJSONString());
//        String result = alipayClient.pageExecute(alipayRequest).getBody();
//        //会收到支付宝的响应，响应的是一个页面，只要浏览器显示这个页面，就会自动来到支付宝的收银台页面
//        System.out.println("支付宝的响应：" + result);
//
//        httpResponse.setContentType("text/html;charset=" + charset);
//        httpResponse.getWriter().write(result);
//        httpResponse.getWriter().flush();
//        httpResponse.getWriter().close();
//    }
//}
